A file server is a special purpose computer that provides file service relating to the organization of information on storage devices, such as disks. The file server or filer includes a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on the disks. Each “on disk” file may be implemented as a set of data structures, e.g., disk blocks, configured to store information. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
A filer may be further configured to operate according to a client/server model of information delivery to thereby allow many clients to access files stored on a server. In this model, the client may comprise an application, such as a database application, executing on a computer that connects to the filer over a computer network. This computer network could be a point to point link, a shared local area network (LAN), a wide area network (WAN) or a virtual private network (VPN) implemented over a public network such as the Internet. Each client may request the services of the file system on the filer by issuing file system protocol messages (typically in the form of packets) to the filer over the network.
The disk storage typically implemented has one or more storage “volumes” comprised of a cluster of physical storage disks, defining an overall logical arrangement of storage space. Currently available filer implementations can serve a large number of discrete volumes (150 or more, for example). Each volume is generally associated with its own file system. The disks within a volume/file system are typically organized as one or more groups of Redundant Array of Independent (or Inexpensive) Disks (RAID). RAID implementations enhance the reliability and integrity of data storage through the redundant writing of data stripes across a given number of physical disks in the RAID group, and the appropriate caching of parity information with respect to the striped data. In the example of a WAFL based file system and process, a RAID 4 implementation is advantageously employed. This implementation specifically entails the striping of data across a group of disks, and separate parity caching within a selected disk of the RAID group.
Each filer “owns” the disks that comprise the volumes that the filer services. This ownership means that the filer is responsible for servicing the data contained on the disks. If the disks are connected to a switching network, for example a Fibre Channel switch, all of the filers connected to the switch are typically able to see, and read from, all of the disks connected to the switching network. However, only the filer that owns the disks can write to the disks. In effect, there is a “hard” partition between disks that are owned by separate filers that prevents a non-owner filer from writing to a disk.
This ownership information is stored in two locations. This ownership of disks is described in detail in U.S. patent application Ser. No. 10/027,457 ENTITLED SYSTEM AND METHOD OF IMPLEMENTING DISK OWNERSHIP IN NETWORKED STORAGE, which is hereby incorporated by reference. In the example of a WAFL based file system, each disk has a predetermined sector that contains the definitive ownership information. This definitive ownership sector is called sector S. In an exemplary embodiment, sector S is sector zero of a disk. The second source of this ownership information is through the use of Small Computer System Interface (SCSI) level 3 reservations. These SCSI-3 reservations are described in SCSI Primary Commands-3, by Committee T10 of the National Committee for Information Technology Standards, which is incorporated fully herein by reference.
The combination of sector S and SCSI-3 reservation ownership information is often displayed in the following format <SECTORS, SCSI>, where SECTORS denotes the ownership information stored in sector S and SCSI is the current holder of the SCSI-3 reservation on that disk. Thus, as an example, if sector S and the SCSI-3 reservation of a disk both show that the disk is owned by a filer, arbitrarily termed “Green”, that disks' ownership information could be denoted <G,G>, where “G” denotes Green. If one of the ownership attributes shows that the disk is un-owned, a U is used, i.e. <G,U> for a disk whose SCSI-3 reservations do not show any ownership.
The need often arises to transfer the ownership of a volume from one filer to another filer in a switch-connected network. This need can arise, when, for example, one filer becomes over-burdened because of the number of volumes it is currently serving. By being able to transfer ownership of a volume or a set of disks from one filer to another, filer load balancing can be accomplished. Currently, if a volume is to be transferred from one filer to another, the disks that comprise the volume need to be physically moved from one filer to another.
Accordingly, it is an object of the present invention to provide a system and method for transferring ownership of a volume in a networked storage arrangement. The system and method should be atomic (i.e., all disks are transferred, or none of the disks are transferred), and maintain the consistency of the disks.